package com.aplink.generic.google.maps.clustering.algo;

import java.util.Collection;
import java.util.Set;

import com.aplink.generic.google.maps.clustering.Cluster;
import com.aplink.generic.google.maps.clustering.ClusterItem;

/**
 * Logic for computing clusters
 */
public interface Algorithm<T extends ClusterItem> {
	void addItem(T item);

	void addItems(Collection<T> items);

	void clearItems();

	Set<? extends Cluster<T>> getClusters(double zoom);

	Collection<T> getItems();

	void removeItem(T item);
}
